import axios from "axios";
import { Promise } from "core-js";
// import { useRouter } from 'vue-router';
const config = {
  baseURL: import.meta.env.VITE_APP_URL,
  timeout: 1000000,
  headers: {
    "Content-type": "application/json",
    Accept: "application/json",
  },
};
// const router = useRouter()
const instance = axios.create(config);
// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    // 判断用户是否有token
    const token = sessionStorage.getItem("token");
    if (token) {
      config.headers["Authorization"] = token;
    }
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    const data = response.data;
    console.log(data, '打印')
    if (data.code === '00000') {
      return data.data;
    }
    if (data.code === "A00014") {
      showNotify({ type: 'danger', message: data.data });
    }
    if (data.code === 'A00001') {
      showNotify({ type: 'danger', message: data.msg });
    }
    if (data.code === 'A00004') {
      showNotify({ type: 'danger', message: "请登录" });
      // router.push({
      //   path:''
      // })
    }
    return data;
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

const getWay = (url, data) => instance.get(url, { params: data });

const postWay = (url, data) => instance.post(url, data);

const putWay = (url, data) => instance.put(url, data);

const delWay = (url, data) =>
  instance.request({
    url,
    method: "delete",
    data,
  });

export { getWay, postWay, putWay, delWay };
